export default {
	data() {
		return {
			versionUpdateInfo:{
				update:false,
				wgtUrl:'',
				version:'',
				name:''
			},
			progress: 0
		}
	},
	methods: {
		checkedVersion:function(checkApkVersionUrl){
			// #ifdef APP-PLUS
			const vm = this
			return new Promise((resolve, reject) => {
				if (!checkApkVersionUrl) {
					reject({
						checked: false,
						message: "检测版本更新的接口地址未传入"
					})
					return
				}
				plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) { 
					console.log("widgetInfo", widgetInfo)
					vm.$u.post(checkApkVersionUrl, {
						version: widgetInfo.version,
						name: widgetInfo.name
					}).then(res => {
						// 如果检测到是需要更新，这里应该要怎么做。
						if (res.update && res.wgtUrl) {
							// 这里应该是返回一个状态出去。
							return resolve({
								checked: true
							})
							vm.versionUpdateInfo.wgtUrl = res.wgtUrl
							// vm.downLoadApk(res.wgtUrl)
						}  
						reject({
							checked: false,
							message: res.message || "接口返回状态错误",
							error: res
						})
					}).catch((err) => {
						console.log("error", err)
						reject({
							checked: false,
							message: err.message || "接口返回报错",
							error: err
						})
						
					}) 
				});
			})
			
			// #endif
		},
		downLoadApk(url) {
			// #ifdef APP-PLUS
			const vm = this
			vm.is_download = true
			const downLoadTsk = uni.downloadFile({
				url: url, //仅为示例，并非真实的资源
				success: (res) => {
					if (res.statusCode === 200) {
						vm.installApk()
					} else {
						vm.installError()
					}
				},
				fail: (err) => {
					console.error("apk下载失败", err)
				}
			});
			downloadTask.onProgressUpdate((res) => {
				console.log('下载进度' + res.progress);
				vm.progress = res.progress
				console.log('已经下载的数据长度' + res.totalBytesWritten);
				console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
				// 满足测试条件，取消下载任务。
				if (res.progress >= res.totalBytesExpectedToWrite) {
					downloadTask.abort();
				}
			});
			// #endif
			
		},
		installApk(tempFilePath) {
			// #ifdef APP-PLUS
			const vm = this
			plus.runtime.install(tempFilePath, {
				force: true  
			}, function () {
				uni.showModal({
					title: '提示',
					content: '更新完成，立即重启',
					showCancel: false,
					success: function(res) {
						if (res.confirm) {
							plus.runtime.restart();
							console.log('安装成功','install success...'); 
						}
					}
				});		
			}, function () {
				vm.installError()
				return false;
			})
			// #endif
		},
		installError() {
			this.is_fail = true
			uni.showToast({
			    title: '更新失败，请关闭app重试2',
			    duration: 2000,
				icon:'none'
			});
		}
	},
	
}